KLOVER: A Symbolic Execution and Automatic Test Generation Tool for C++ Programs
نویسندگان
چکیده
We present the first symbolic execution and automatic test generation tool for C++ programs. First we describe our effort in extending an existing symbolic execution tool for C programs to handle C++ programs. We then show how we made this tool generic, efficient and usable to handle real-life industrial applications. Novel features include extended symbolic virtual machine, library optimization for C and C++, object-level execution and reasoning, interfacing with specific type of efficient solvers, and semi-automatic unit and component testing. This tool is being used to assist the validation and testing of industrial software as well as publicly available programs written using the C++ language.
منابع مشابه
Heuristic Approach of Automated Test Data Generation For Programs Having Array Of Different Dimensions and Loops With Variable Number Of Iteration
In software testing, loops are important spot for error detection. Execution of program spend large amount of time in loops. Without covering paths going through loops we can not get better code coverage. Most of the mistakes are made in loops of programs. Infinite loop creates lots of problem in detecting the errors. In fact, it is impossible to detect all kinds of infinite looping automatical...
متن کاملEnhancing Symbolic Execution of Heap-based Programs with Separation Logic for Test Input Generation
Symbolic execution is a well established method for test input generation. By taking inputs as symbolic values and solving constraints encoding path conditions, it helps achieve a better test coverage. Despite of having achieved tremendous success over numeric domains, existing symbolic execution techniques for heap-based programs (e.g., linked lists and trees) are limited due to the lack of a ...
متن کاملTesting Database Programs using Relational Symbolic Execution
Symbolic execution is a technique which allows to automatically generate test inputs (and outputs) exercising a set of execution paths within a program to be tested. If the paths cover a sufficient part of the code under test, the test data offer a representative view of the program’s actual behaviour, allowing to detect failures and correct faults. Relational databases are ubiquitous in softwa...
متن کاملFinding Errors in Python Programs Using Dynamic Symbolic Execution
For statically typed languages, dynamic symbolic execution (also called concolic testing) is a mature approach to automated test generation. However, extending it to dynamic languages presents several challenges. Complex semantics, fragmented and incomplete type information, and calls to foreign functions lacking precise models make symbolic execution difficult. We propose a symbolic execution ...
متن کاملEmpirical Evaluation of Metaheuristic Approaches for Symbolic Execution based Automated Test Generation
This paper empirically evaluates four meta-heuristic search techniques namely particle swarm optimization, artificial bee colony algorithm, Genetic Algorithm and Big Bang Big Crunch Algorithm for automatic test data generation for procedure oriented programs using structural symbolic testing method. Test data is generated for each feasible path of the programs. Experiments on ten benchmark prog...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011